package com.dongzili.demo.customer.redis.model;


import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.dongzili.demo.common.annotation.MapperAndService;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.springframework.data.redis.core.index.Indexed;

import java.time.LocalDateTime;

/**
* 接口日志记录
* &#064;TableName t_interface_log
*/
@MapperAndService
@Data
@TableName(value ="t_interface_log")
public class InterfaceLog {

    /**
    * 主键
    */
    @TableId(value="`id`", type = IdType.AUTO)
    private Long id;

    /**
    * 跟踪标识
    */
    @TableField("`traceId`")
    private String traceId;

    /**
    * 用户id
    */
    @TableField("`userId`")
    private Long userId;

    /**
    * 用户名
    */
    @Indexed
    @TableField("`username`")
    private String username;

    /**
     * 用户编码
     */
    @TableField("`userno`")
    private String userno;

    /**
    * 请求方式: get,post
    */
    @TableField("`method`")
    private String method;

    /**
    * 请求地址
    */
    @TableField("`url`")
    private String url;

    /**
    * 请求参数
    */
    @TableField("`params`")
    private String params;

    /**
     * 返回结果
     */
    @Indexed
    @TableField("`resultStr`")
    private String resultStr;

    /**
    * ip
    */
    @TableField("`ip`")
    private String ip;

    /**
    * 执行时间(s)
    */
    @TableField("`execution_time`")
    private Long executionTime;

    /**
    * 异常信息
    */
    @TableField("`errMsg`")
    private String errMsg;

    /**
     * 是否异常
     */
//    @TableField("`hasErr`")
//    private Boolean hasErr;

    /**
    * 创建时间
    */
    @Indexed
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @JsonProperty("createTime")
    @TableField("`createTime`")
    private LocalDateTime createTime;

    /**
    * 更新时间
    */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @JsonProperty("modifyTime")
    @TableField("`modifyTime`")
    private LocalDateTime modifyTime;


}
